package cn.edu.anan.pattern.dispatch;

/**
 * 单分派，还是双分派？
 *
 * @author ThinkPad
 * @version 1.0
 * @date 2021/12/26 10:05
 */
public class Dispatch {

    /**
     * 调用哪个对象的方法，在运行期确定
     * @param p
     */
    public void dispatchFun(Parent p){
        p.f();
    }

    /**
     * 重载方法1.调用对象的哪个方法，（方法参数）在编译期确定
     * @param p
     */
    public void overloadFun(Parent p){
        System.out.println("I am overloadFun.Parent");
        p.f();
    }

    /**
     * 重载方法2.调用对象的哪个方法，（方法参数）在编译期确定
     * @param c
     */
    public void overloadFun(Child c){
        System.out.println("I am overloadFun.Child");
        c.f();
    }
}
